<?php

class DateHandler {

    public static function DateDiff($data_inicial, $data_final) {
        //Transformando as datas em arrays
        $array_data_inicial = explode('/', $data_inicial);
        $array_data_final = explode('/', $data_final);

        //Atribuindo o valor do array com a data inicial para variáveis
        $diainicial = $array_data_inicial[0];
        $mesinicial = $array_data_inicial[1];
        $anoinicial = $array_data_inicial[2];

        //Atribuindo o valor do array com a data final para variáveis
        $diafinal = $array_data_final[0];
        $mesfinal = $array_data_final[1];
        $anofinal = $array_data_final[2];

        //A mágica acontece!
        $data_inicial_secs = mktime(0, 0, 0, $mesinicial, $diainicial, $anoinicial);
        $data_final_secs = mktime(0, 0, 0, $mesfinal, $diafinal, $anofinal);

        $intervalo = $data_final_secs - $data_inicial_secs;

        //No nosso caso vamos retornar o valor em dias
        $um_dia = 86400;
        $retorno = $intervalo / $um_dia;

        return $retorno;
    }

    public static function ArrayDateUntil($data_inicial, $data_final) {

        $array_data_inicial = explode('/', $data_inicial);
        $array_data_final = explode('/', $data_final);

        //Atribuindo o valor do array com a data inicial para variáveis
        $diainicial = $array_data_inicial[0];
        $mesinicial = $array_data_inicial[1];
        $anoinicial = $array_data_inicial[2];

        //Atribuindo o valor do array com a data final para variáveis
        $diafinal = $array_data_final[0];
        $mesfinal = $array_data_final[1];
        $anofinal = $array_data_final[2];


        $data_inicial_secs = mktime(0, 0, 0, $mesinicial, $diainicial, $anoinicial);
        $data_final_secs = mktime(0, 0, 0, $mesfinal, $diafinal, $anofinal);

        $intervalo = $data_final_secs - $data_inicial_secs;

        $dias = $intervalo / 86400;

        $arraydate;


        for ($i = 0; $i <= $dias; $i++) {

            $data_counter = mktime(0, 0, 0, $mesinicial, $diainicial, $anoinicial);
            $diainicial++;
            $arraydate[] = date('d/m/Y', $data_counter) . '<br />';
        }

        return $arraydate;
    }

}

?>
